// Generated from Xn.g4 by ANTLR 4.9.3

package com.telrob.antlr.role;

import org.antlr.v4.runtime.tree.ParseTreeListener;

/**
 * This interface defines a complete listener for a parse tree produced by
 * {@link XnParser}.
 */
public interface XnListener extends ParseTreeListener {
	/**
	 * Enter a parse tree produced by {@link XnParser#prog}.
	 * @param ctx the parse tree
	 */
	void enterProg(XnParser.ProgContext ctx);
	/**
	 * Exit a parse tree produced by {@link XnParser#prog}.
	 * @param ctx the parse tree
	 */
	void exitProg(XnParser.ProgContext ctx);
	/**
	 * Enter a parse tree produced by {@link XnParser#progamBody}.
	 * @param ctx the parse tree
	 */
	void enterProgamBody(XnParser.ProgamBodyContext ctx);
	/**
	 * Exit a parse tree produced by {@link XnParser#progamBody}.
	 * @param ctx the parse tree
	 */
	void exitProgamBody(XnParser.ProgamBodyContext ctx);
	/**
	 * Enter a parse tree produced by {@link XnParser#declareBlock}.
	 * @param ctx the parse tree
	 */
	void enterDeclareBlock(XnParser.DeclareBlockContext ctx);
	/**
	 * Exit a parse tree produced by {@link XnParser#declareBlock}.
	 * @param ctx the parse tree
	 */
	void exitDeclareBlock(XnParser.DeclareBlockContext ctx);
	/**
	 * Enter a parse tree produced by {@link XnParser#functionBlock}.
	 * @param ctx the parse tree
	 */
	void enterFunctionBlock(XnParser.FunctionBlockContext ctx);
	/**
	 * Exit a parse tree produced by {@link XnParser#functionBlock}.
	 * @param ctx the parse tree
	 */
	void exitFunctionBlock(XnParser.FunctionBlockContext ctx);
	/**
	 * Enter a parse tree produced by {@link XnParser#functionHander}.
	 * @param ctx the parse tree
	 */
	void enterFunctionHander(XnParser.FunctionHanderContext ctx);
	/**
	 * Exit a parse tree produced by {@link XnParser#functionHander}.
	 * @param ctx the parse tree
	 */
	void exitFunctionHander(XnParser.FunctionHanderContext ctx);
	/**
	 * Enter a parse tree produced by {@link XnParser#functionParam}.
	 * @param ctx the parse tree
	 */
	void enterFunctionParam(XnParser.FunctionParamContext ctx);
	/**
	 * Exit a parse tree produced by {@link XnParser#functionParam}.
	 * @param ctx the parse tree
	 */
	void exitFunctionParam(XnParser.FunctionParamContext ctx);
	/**
	 * Enter a parse tree produced by {@link XnParser#functionParamDeclare}.
	 * @param ctx the parse tree
	 */
	void enterFunctionParamDeclare(XnParser.FunctionParamDeclareContext ctx);
	/**
	 * Exit a parse tree produced by {@link XnParser#functionParamDeclare}.
	 * @param ctx the parse tree
	 */
	void exitFunctionParamDeclare(XnParser.FunctionParamDeclareContext ctx);
	/**
	 * Enter a parse tree produced by {@link XnParser#functionBody}.
	 * @param ctx the parse tree
	 */
	void enterFunctionBody(XnParser.FunctionBodyContext ctx);
	/**
	 * Exit a parse tree produced by {@link XnParser#functionBody}.
	 * @param ctx the parse tree
	 */
	void exitFunctionBody(XnParser.FunctionBodyContext ctx);
	/**
	 * Enter a parse tree produced by {@link XnParser#calculateBody}.
	 * @param ctx the parse tree
	 */
	void enterCalculateBody(XnParser.CalculateBodyContext ctx);
	/**
	 * Exit a parse tree produced by {@link XnParser#calculateBody}.
	 * @param ctx the parse tree
	 */
	void exitCalculateBody(XnParser.CalculateBodyContext ctx);
	/**
	 * Enter a parse tree produced by {@link XnParser#functionCall}.
	 * @param ctx the parse tree
	 */
	void enterFunctionCall(XnParser.FunctionCallContext ctx);
	/**
	 * Exit a parse tree produced by {@link XnParser#functionCall}.
	 * @param ctx the parse tree
	 */
	void exitFunctionCall(XnParser.FunctionCallContext ctx);
	/**
	 * Enter a parse tree produced by {@link XnParser#functionCallParam}.
	 * @param ctx the parse tree
	 */
	void enterFunctionCallParam(XnParser.FunctionCallParamContext ctx);
	/**
	 * Exit a parse tree produced by {@link XnParser#functionCallParam}.
	 * @param ctx the parse tree
	 */
	void exitFunctionCallParam(XnParser.FunctionCallParamContext ctx);
	/**
	 * Enter a parse tree produced by {@link XnParser#whileBlock}.
	 * @param ctx the parse tree
	 */
	void enterWhileBlock(XnParser.WhileBlockContext ctx);
	/**
	 * Exit a parse tree produced by {@link XnParser#whileBlock}.
	 * @param ctx the parse tree
	 */
	void exitWhileBlock(XnParser.WhileBlockContext ctx);
	/**
	 * Enter a parse tree produced by {@link XnParser#doWhileBlock}.
	 * @param ctx the parse tree
	 */
	void enterDoWhileBlock(XnParser.DoWhileBlockContext ctx);
	/**
	 * Exit a parse tree produced by {@link XnParser#doWhileBlock}.
	 * @param ctx the parse tree
	 */
	void exitDoWhileBlock(XnParser.DoWhileBlockContext ctx);
	/**
	 * Enter a parse tree produced by {@link XnParser#forBlock}.
	 * @param ctx the parse tree
	 */
	void enterForBlock(XnParser.ForBlockContext ctx);
	/**
	 * Exit a parse tree produced by {@link XnParser#forBlock}.
	 * @param ctx the parse tree
	 */
	void exitForBlock(XnParser.ForBlockContext ctx);
	/**
	 * Enter a parse tree produced by {@link XnParser#forConditionBlock}.
	 * @param ctx the parse tree
	 */
	void enterForConditionBlock(XnParser.ForConditionBlockContext ctx);
	/**
	 * Exit a parse tree produced by {@link XnParser#forConditionBlock}.
	 * @param ctx the parse tree
	 */
	void exitForConditionBlock(XnParser.ForConditionBlockContext ctx);
	/**
	 * Enter a parse tree produced by {@link XnParser#conditionIfBlock}.
	 * @param ctx the parse tree
	 */
	void enterConditionIfBlock(XnParser.ConditionIfBlockContext ctx);
	/**
	 * Exit a parse tree produced by {@link XnParser#conditionIfBlock}.
	 * @param ctx the parse tree
	 */
	void exitConditionIfBlock(XnParser.ConditionIfBlockContext ctx);
	/**
	 * Enter a parse tree produced by {@link XnParser#ifBlock}.
	 * @param ctx the parse tree
	 */
	void enterIfBlock(XnParser.IfBlockContext ctx);
	/**
	 * Exit a parse tree produced by {@link XnParser#ifBlock}.
	 * @param ctx the parse tree
	 */
	void exitIfBlock(XnParser.IfBlockContext ctx);
	/**
	 * Enter a parse tree produced by {@link XnParser#elseIfBlock}.
	 * @param ctx the parse tree
	 */
	void enterElseIfBlock(XnParser.ElseIfBlockContext ctx);
	/**
	 * Exit a parse tree produced by {@link XnParser#elseIfBlock}.
	 * @param ctx the parse tree
	 */
	void exitElseIfBlock(XnParser.ElseIfBlockContext ctx);
	/**
	 * Enter a parse tree produced by {@link XnParser#elseBlock}.
	 * @param ctx the parse tree
	 */
	void enterElseBlock(XnParser.ElseBlockContext ctx);
	/**
	 * Exit a parse tree produced by {@link XnParser#elseBlock}.
	 * @param ctx the parse tree
	 */
	void exitElseBlock(XnParser.ElseBlockContext ctx);
	/**
	 * Enter a parse tree produced by {@link XnParser#conditionBlock}.
	 * @param ctx the parse tree
	 */
	void enterConditionBlock(XnParser.ConditionBlockContext ctx);
	/**
	 * Exit a parse tree produced by {@link XnParser#conditionBlock}.
	 * @param ctx the parse tree
	 */
	void exitConditionBlock(XnParser.ConditionBlockContext ctx);
	/**
	 * Enter a parse tree produced by {@link XnParser#condition}.
	 * @param ctx the parse tree
	 */
	void enterCondition(XnParser.ConditionContext ctx);
	/**
	 * Exit a parse tree produced by {@link XnParser#condition}.
	 * @param ctx the parse tree
	 */
	void exitCondition(XnParser.ConditionContext ctx);
	/**
	 * Enter a parse tree produced by {@link XnParser#declare}.
	 * @param ctx the parse tree
	 */
	void enterDeclare(XnParser.DeclareContext ctx);
	/**
	 * Exit a parse tree produced by {@link XnParser#declare}.
	 * @param ctx the parse tree
	 */
	void exitDeclare(XnParser.DeclareContext ctx);
	/**
	 * Enter a parse tree produced by {@link XnParser#assignmentDeclare}.
	 * @param ctx the parse tree
	 */
	void enterAssignmentDeclare(XnParser.AssignmentDeclareContext ctx);
	/**
	 * Exit a parse tree produced by {@link XnParser#assignmentDeclare}.
	 * @param ctx the parse tree
	 */
	void exitAssignmentDeclare(XnParser.AssignmentDeclareContext ctx);
	/**
	 * Enter a parse tree produced by {@link XnParser#assignment}.
	 * @param ctx the parse tree
	 */
	void enterAssignment(XnParser.AssignmentContext ctx);
	/**
	 * Exit a parse tree produced by {@link XnParser#assignment}.
	 * @param ctx the parse tree
	 */
	void exitAssignment(XnParser.AssignmentContext ctx);
	/**
	 * Enter a parse tree produced by {@link XnParser#expression}.
	 * @param ctx the parse tree
	 */
	void enterExpression(XnParser.ExpressionContext ctx);
	/**
	 * Exit a parse tree produced by {@link XnParser#expression}.
	 * @param ctx the parse tree
	 */
	void exitExpression(XnParser.ExpressionContext ctx);
	/**
	 * Enter a parse tree produced by {@link XnParser#expressionType}.
	 * @param ctx the parse tree
	 */
	void enterExpressionType(XnParser.ExpressionTypeContext ctx);
	/**
	 * Exit a parse tree produced by {@link XnParser#expressionType}.
	 * @param ctx the parse tree
	 */
	void exitExpressionType(XnParser.ExpressionTypeContext ctx);
	/**
	 * Enter a parse tree produced by {@link XnParser#baseType}.
	 * @param ctx the parse tree
	 */
	void enterBaseType(XnParser.BaseTypeContext ctx);
	/**
	 * Exit a parse tree produced by {@link XnParser#baseType}.
	 * @param ctx the parse tree
	 */
	void exitBaseType(XnParser.BaseTypeContext ctx);
	/**
	 * Enter a parse tree produced by {@link XnParser#string}.
	 * @param ctx the parse tree
	 */
	void enterString(XnParser.StringContext ctx);
	/**
	 * Exit a parse tree produced by {@link XnParser#string}.
	 * @param ctx the parse tree
	 */
	void exitString(XnParser.StringContext ctx);
}